iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 15
0
自我挑戰組

30天的css animation修練系列 第 15

實作 css animation - 搜尋框變形小動畫

  • 分享至 

  • xImage
  •  

今天要寫的主題是搜尋框變形動畫
代表搜尋的放大鏡 icon按下後會拉伸為搜尋框的效果
一樣把基本架構寫好
input做為搜尋框使用, span 則是放大鏡 icon 的本體放大鏡的棍子則用偽元素來做

<div class="container">
  <div class="centered-search">
    <input type="text">
    <span></span>
  </div>
</div>

然後設定好基本的 css

body {
  background: #262626;
}
/*讓頁面上的 box 邊框不影響元素寬度*/
* {
  box-sizing: border-box;
}

.centered-search {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.centered-search input {
  border: none;
  background: none;
  z-index: 1;
  width: 1.5em;
  height: 1.5em;
  color: transparent;
  transition: all 0.3s ease-in 0.3s;
  font-size: 1.2em;
  line-height: 1.2em;
}

然後針對 input 跟 span增加 transition 的樣式

/*hover到輸入框 游標顯示的樣式*/
.centered-search input:hover {
  cursor: pointer;
}

/*hover以後+按輸入框 游標顯示的樣式*/
.centered-search input:hover:focus {
  cursor: text;
}

.centered-search input:focus {
  width: 100%;
  outline: none;
  background: none;
  color: #fff;
  padding: 2px 12px;
/*   border:2px solid #ff4141;
  border-radius:1.5em;  */
}

.centered-search input:focus + span {
  width: 100%;
  height:1.8em;
  border: 2px solid #ff4141;
}

/*按下搜尋時 放大鏡的棍棍消失*/
.centered-search input:focus + span::before {
  width: 2px;
  opacity: 0;
  transition: all 0.3s ease-in 0.3s;
}

/*放大鏡的圈圈*/
.centered-search span {
  z-index: -1;
  width: 1.5em;
  height: 1.5em;
  border: 2px solid #fff;
  position: absolute;
  border-radius: 1.5em;
  left: 0;
  top: 0;
}

/*放大鏡的棍棍*/
.centered-search span::before {
  transition: all 0.3s ease-in 0.3s;
  /*transform-orgin 設定旋轉基準點*/
  transform-orgin: left top;
  content: "";
  position: absolute;
  width: 0.8em;
  height: 5px;
  border-radius: 5px;
  background: #fff;
  transform: rotate(45deg) translate(1.5em, 3px);
}

到這邊就完成了
其實今天的內容是純粹transition的動態效果XD
不是有keyframes的css animation

附上本次的 codepen 如下
https://codepen.io/UHU/pen/QZxeRG


上一篇
實作 css animation - 色塊遮擋文字效果
下一篇
實作 css animation - 背景漂浮泡泡
系列文
30天的css animation修練30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言